using System;
using System.Collections.Generic;
using System.Data;
using System.Globalization;

namespace Medianamik.Core.DAL
{
    public interface ICollectionWithChildren<TCollection, TItem> : IList<TItem>
        where TItem : IMedianamikDTO
    {
        TCollection LoadChildNodes(Guid pNodeId, string cultureName, bool pInclusive, int pMaxDepth, 
            ContentState contentState, ActiveStatus status);

        TCollection LoadParentNodes(Guid pNodeId, string cultureName, bool pInclusive, int pMaxDepth, 
            ContentState contentState, ActiveStatus status);

        TCollection Load(string cultureName, ContentState contentState, ActiveStatus status);

        IEnumerable<TItem> LoadByIDs(string ids, string cultureName, ContentState contentState, ActiveStatus status);

        IEnumerable<TItem> LoadByIDs(IList<Guid> ids, string cultureName, ContentState contentState, ActiveStatus status);

        void LoadAndCloseReader(IDataReader reder);
    }
}